<?php
/**
 * Created by PhpStorm.
 * User: zhang
 * Date: 2018/1/24
 * Time: 13:32
 */

/**
 * P   date  T time
 * Y	years
 * M	months
 * D	days
 * W	weeks. These get converted into days, so can not be combined with D.
 * H	hours
 * M	minutes
 * S	seconds
 */

$interval = new DateInterval('P2Y10M4DT6H8M');
//var_dump($interval);
echo $interval->format('%Y 年，%m 月 ，/* %W 周 */ ， %d 天，%H 时， %i 分 ，%s 秒').PHP_EOL;

$dateTime = new DateTime;
//DateInterval::format() - Formats the interval
echo $dateTime->format( DateTime::ISO8601 ), PHP_EOL;

//DateTime::add() - Adds an amount of days, months, years, hours, minutes and seconds to a DateTime object
$dateTime->add(new DateInterval("P3M"));
echo $dateTime->format( DateTime::ISO8601 ), PHP_EOL;

//DateTime::sub() - Subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object
$dateTime->sub(new DateInterval("P1D"));
echo $dateTime->format(DATE_ISO8601).PHP_EOL;

//DateTime::diff() - Returns the difference between two DateTime objects
$dateInterval = $dateTime->diff(new DateTime());
$diff = $dateInterval->format("%Y 年，%m 月 ，/* %W 周 */ ， %d 天，%H 时， %i 分 ，%s 秒");
echo $diff.PHP_EOL;

//echo ((new DateTime())->diff((new DateTime)->setDate(2018, 2, 14)))->format("%Y 年，%m 月 ，/* %W 周 */ ， %d 天，%H 时， %i 分 ，%s 秒").PHP_EOL;
$interval = (new DateTime())->diff((new DateTime)->setDate(2018, 2, 14));
echo $interval->format("%Y 年，%m 月 ，/* %W 周 */ ， %d 天，%H 时， %i 分 ，%s 秒").PHP_EOL;

//DateTime 对象之间可以直接进行比较：
if(new DateTime() < (new DateTime())->add(new DateInterval("P1Y"))){
    echo "Start is before end!\n";
}
